Skip to main content

Decorators


Class Decorators

Applied to class constructor for observing, modifying or replacing class definition

@controller("api")
class APIServer {
constructor(private app:Express){

}
}

// Receives the constructor of the class
declare type ClassDecorator = <TFunction extends Function>(target: TFunction) => TFunction | void;


// Implementation
function log(constructor: Function){
console.log(`${constructor} Decroator Invoked`)
}

Method Decorators

observing, modifying, or replacing method definition.


class APIServer {
constructor(){

}

@log("Route added to API Server")
public addRoute(path:string, action:Action){
this._app.addRoute(path,action)
}
}

Property Decorators


Parameter Decorators

Applied to method declaration for observing that a parameter has been defined

Decroator Appraoches

Decrator Function

Must implement specific signatures based on use

Decrator Factory

Enable you to receive parameters and construct the Decorators Need to have paranethsis in their definition.

Decorators are called at runtime with either approach.